﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BussinessLayer;
using DataAccessLayer.Entity;
using System.Text.RegularExpressions;
namespace QLTSLienThong.Form_he_thong
{
    public partial class frmKVUT : Form
    {
        public frmKVUT()
        {
            InitializeComponent();
        }
        KVUTBussiness kvutBus = new KVUTBussiness();
        clsKVUT clsKV;
        bool _KiemTraThemKVUT, KiemTraTonTaiMa = true;
        object kq;
        private void btnHuyKVUT_Click(object sender, EventArgs e)
        {
            LoadKVUT();
        }
        private void KhoaTextKVUT()
        {
            txtMaKVUT.ReadOnly = true;
            txtTenKVUT.ReadOnly = true;
            txtDiemKVUT.ReadOnly = true;
            btnSuaKVUT.BringToFront();
            btnThemKVUT.BringToFront();
        }
        private void MoTextKVUT()
        {
            txtMaKVUT.ReadOnly = false;
            txtTenKVUT.ReadOnly = false;
            txtDiemKVUT.ReadOnly = false;
            btnSuaKVUT.SendToBack();
            btnThemKVUT.SendToBack();
            txtMaKVUT.Focus();
        }
        private void XoaTextKVUT()
        {
            txtMaKVUT.Clear();
            txtTenKVUT.Clear();
            txtDiemKVUT.Clear();
        }
        private void btnLuuKVUT_Click(object sender, EventArgs e)
        {
            if (KiemTraDL() && IsNumber(txtDiemKVUT.Text.Trim()))
            {
                if (_KiemTraThemKVUT)
                {
                    clsKV = new clsKVUT();
                    clsKV.MaKVUT = txtMaKVUT.Text.Trim();
                    clsKV.TenKVUT = txtTenKVUT.Text.Trim();
                    clsKV.DiemKVUT = decimal.Parse(txtDiemKVUT.Text.Trim());
                    kvutBus.ThemKVUT(clsKV);
                    MessageBox.Show("Thêm thành công!","Thông báo");
                    LoadKVUT();
                }
                else
                {
                    clsKV = new clsKVUT();
                    clsKV.MaKVUT = txtMaKVUT.Text.Trim();
                    clsKV.TenKVUT = txtTenKVUT.Text.Trim();
                    clsKV.DiemKVUT = decimal.Parse(txtDiemKVUT.Text.Trim());
                    kvutBus.SuaKVUT(clsKV);
                    MessageBox.Show("Sửa thành công!", "Thông báo");
                    LoadKVUT();
                }
            }
            //else
            //{
            //    MessageBox.Show("Bạn nhập số sai định dạng!");
            //}
        }

        private void frmKVUT_Load(object sender, EventArgs e)
        {
            LoadKVUT();
        }
        private void LoadKVUT()
        {
            dtgKVUT.DataSource = kvutBus.LoadKVUT();
            LoadLenTextBox();
            KhoaTextKVUT();
        }
        private bool KiemTraDL()
        {
            if (txtMaKVUT.Text.Trim() == "")
            {
                MessageBox.Show("Chưa nhập mã KVUT!","Thông báo");
                txtMaKVUT.Focus();
                return false;
            }
            if (_KiemTraThemKVUT == false)
            {
                if (txtMaKVUT.Text.Trim() == dtgKVUT.CurrentRow.Cells["MaKVUT"].Value.ToString())
                {
                    KiemTraTonTaiMa = false;
                }
            }
            if (KiemTraTonTaiMa == true)
            {
                clsKV = new clsKVUT();
                clsKV.MaKVUT = txtMaKVUT.Text.Trim();
                kq = kvutBus.KiemTraMa(clsKV);
                if (Convert.ToInt32(kq) > 0)
                {
                    MessageBox.Show("Mã này đã tồn tài!", "Thông báo!");
                    txtMaKVUT.Focus();
                    return false;
                }
            }
            if (txtTenKVUT.Text.Trim() == "")
            {
                MessageBox.Show("Chưa nhập Tên KVUT!", "Thông báo");
                txtTenKVUT.Focus();
                return false;
            }
            //if (_KiemTraThemKVUT == false)
            //{
            //    if (txtMaKVUT.Text.Trim() == dtgKVUT.CurrentRow.Cells["MaKVUT"].Value.ToString())
            //    {
            //        _kiemTraTonTaiMa = false;
            //    }
            //}
            //if (_kiemTraTonTaiMa == true)
            //{
            //    clsKV = new clsKVUT();
            //    clsKV.MaKVUT = txtMaKVUT.Text.Trim();
            //    //clsQuanHuyen.MaTinhThanh = _MaTinh;
            //    kq = kvutBus.KiemTraTrungMaKVUT(clsKV);
            //    if (Convert.ToInt32(kq) > 0)
            //    {
            //        MessageBox.Show("Mã KVUT này đã tồn tài!", "Thông báo!");
            //        txtMaKVUT.Focus();
            //        return false;
            //    }
            //}
            if (txtDiemKVUT.Text.Trim() == "")
            {
                MessageBox.Show("Chưa nhập điểm KVUT!", "Thông báo");
                txtDiemKVUT.Focus();
                return false;
            }
            decimal nDiem = 0;
            if (decimal.TryParse(this.txtDiemKVUT.Text, out nDiem)==false)
            {
                MessageBox.Show("Bạn nhập k phải số !","Thông báo");
                txtDiemKVUT.Focus();
                return false;
            }
            return true;
        }
        private void btnThemKVUT_Click(object sender, EventArgs e)
        {
            _KiemTraThemKVUT = true;
            MoTextKVUT();
            XoaTextKVUT();
        }

        private void btnSuaKVUT_Click(object sender, EventArgs e)
        {
            _KiemTraThemKVUT = false;
            
            MoTextKVUT();
        }
        private  void LoadLenTextBox()
        {
            txtMaKVUT.DataBindings.Clear();
            txtMaKVUT.DataBindings.Add("Text",dtgKVUT.DataSource,"MaKVUT");
            txtTenKVUT.DataBindings.Clear();
            txtTenKVUT.DataBindings.Add("Text", dtgKVUT.DataSource, "TenKVUT");
            txtDiemKVUT.DataBindings.Clear();
            txtDiemKVUT.DataBindings.Add("Text", dtgKVUT.DataSource, "DiemKVUT");
        }
        public bool IsNumber(string pText)
        {
            Regex regex = new Regex(@"^[-+]?[0-9]*\.?[0-9]+$");
            return regex.IsMatch(pText);
        }

        private void btnXoaKVUT_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn muốn xóa mã số: " + txtMaKVUT.Text, "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                clsKV = new clsKVUT();
                clsKV.MaKVUT = txtMaKVUT.Text.Trim();
                kvutBus.XoaKVUT(clsKV);
                LoadKVUT();
            }
        }
    }
}
